	TITLE	'History file for CP/M MODEM program VERSION 7.97'

			*****************************

;12/27/82   Made the following changes:
;		1. Fixed MSPEED references and transmission time
;		   calculations to work up to 9600 baud.
;		2. Changed 'CPM' command to 'END'.
;		3. Added logic so that if MODEM is executed with
;		   a command line option, it exits to the operating
;		   system when that operation completes.  If no options
;		   appear on the CCP command line, MODEM operates as
;		   before, prompting for commands and returning to
;		   MODEM's prompt upon completion. This is consistent
;		   with most other utilities and makes it possible to
;		   run MODEM from a SUBMIT file.
;		4. Eliminated extra call to JMP$INITMOD in INITADR.
;		5. Added LXI SP,STACK at RESTART: to make things
;		   more bullet-proof.
;		6. Re-enabled 'B' suboption on invocation.
;		7. INITMOD and SETUPR are now called with DE pointing
;		   to CMDBUF+1.  This makes it possible for custom
;		   routines in overlay file to scan buffer for options.
;		8. File send can be aborted by ^X from remote while
;		   awaiting initial NAK.
;		9. Time estimate and file size are always printed for
;		   single file transfer, even if Q mode.
;	       10. If the .BAK creation option is enabled, it applies
;		   to both single file and batch receives, and the
;		   "Duplicate file - delete?" question is not asked.
;	       11. Help menus and LOG command can be aborted by ^C.
;
;							Bruce R. Ratoff

;12/20/82   Added help screen for PMMI.			R. L. Plouffe

;12/17/82   Made the following changes:
;
;		1. Fixed initial timeout delay on receiving a file,
;		2. Revised XOFF/XON testing routines,
;		3. Revised routines for terminal mode file output rates,
;		4. Revised routine to change user number to allow
;		   better checking of input errors,
;		5. Suppressed user 0 display after default drive message,
;		6. Changed timing routines to allow up to 8 MHz clock,
;		7. Added routines to memory buffer printer.
;							P. L. Kelley

;12/12/82   Revised send file message in library and reformatted library.
;							I. M. Hoff

;12/04/82   Added routines to change user number and display user number
;		after default drive message.		G. Kantor

;11/30/82   Made the following changes:
;
;		1. Put SECTNOE in proper location,
;		2. Added optional XOFF/XON testing to terminal mode
;		   file output routines,
;		3. Added MSPEED setting to PMMI baud rate routines,
;		4. Fixed quiet mode,
;		5. Expanded command line again to help novices,
;		6. Changed to XMODEM routine for receiver to
;		   request CRC mode from sender and added routine
;		   to switch to checksum mode after 6 timeouts.
;					P. L. Kelley and R. L. Plouffe

;11/26/82   Replaced "CDD" command with "LOG", and fixed associated code.
;	    Replaced "CUR" with "?" for easier working of a much used
;	    function. Shortened command line, same info in less space.
;           Normal changes to menus done to reflect new commands.
;							Mark J. Pulver

;11/18/81  Combined 11/08/82 and 11/10/82.
;
;	   Made the following changes:
;
;	     1.	Added optional routine to overlay file to clear screen
;		 and home cursor on paging of menu etc.,
;	     2. Changed printer toggle to terminal mode command and made
;		 optional with overlay file,
;	     3. Changed routines to set MSPEED when changing buad rate with
;		 SET command,
;	     4. Added more information to display of current settings
;		 and used calls to save space,
;	     5. Fixed and shortened bytes free routine,
;	     6. Shortened and separated LIB SENDTIME routine into two parts
;		 so that it can be used in display of current settings,
;	     7. Made echo mode part of normal terminal mode to save space
;		 and make all terminal mode commands available in echo mode,
;	     8. Fixed PMMI BYE routine so that it works with overlay file,
;	     9. Eliminated F command as redundant, DIR FOO (where FOO is a
;		 nonexistent file) accomplishes the same thing.
;								;P.L.Kelley

;11/10/82  Combined MODEM771 and MODEM780 (F. Gaude) as follows:
;
;	     1. Used erase file function in 780,
;	     2. Used 780 code to make display of error count start at 1
;		 and changed display to decimal,
;	     3. Used 780 idea for throttled output on terminal mode
;		 transfer of text file to remote but wrote new routines
;		 including one for user to set speed,
;	     4. Moved disk reset to DIR routine as in 780,
;	     5. Used 780 code to give kbytes free on DIR command but
;		 modified to give kbytes free on requested drive instead
;		 of default drive.
;
;	   Made the following changes:
;
;	     1. Eliminated IMSAI front panel routines,
;	     2.	Changed so PMMI control-D (disconnect) checks for file
;		 open on returning to menu mode,
;	     3. Fixed file display on bulk transfer so that spaces are
;		 eliminated and period is inserted if required,
;	     4. Changed M(enu) to H(elp) command,
;	     5. Added code to allow echo mode to use optional toggling of
;		 send linefeed after carriage return,
;	     6. Added toggling of Checksum/CRC modes on file receive,
;	     7. Added optional code to clear to end of screen on next line
;		 from current cursor position when returning from terminal
;		 mode, this eliminates jumbled screen when working remote
;		 which positions cursor.
;								;P.L.Kelley

;11/08/82   4 new commands added. "?" will show the status of various
;	    options. "LOG" will allow the current disk to be changed, 
;	    "LOG drive" will change the default drive. This tends to 
;	    be redundant with "RST", but I've left RST in for those
;	    who are used to it. "LST" will toggle echoing to the LST
;	    device on and off. "LOC" will toggle local echo on and off.
;	    The latter should be used to replace the "E" option, again
;	    left in for compatability. 
;
;	    A long standing bug in the dial routines has been fixed. If
;	    one had answered "Y" or "C" to the "...Redial..." question,
;	    You would find that yourself dialing whatever was in menu
;	    position "C". This would only happen if the number to be 
;	    called was entered on the command line, and not if chosen
;	    from the menu, this came from the "C" in "CAL". A second bug
;	    showed up when "N" was answered to the same prompt, the modem
;	    would be left off hook.
;
;	    The logic for a menu choice has been changed, the menu is
;	    now displayed before the modem grabs the line. This way, you
;	    have time to make a selection before a Ma Bell time out.
;
;	    Buffer activity logic has been added to the command line, 
;	    which has also been made a bit more brief.
;
;	    Menus have been changed to reflect the new options, and
;	    some cosmetics have been changed.
;
;				Mark J. Pulver   AIMS  (312) 789-0499
;						 24hrs / 7 Days  PMMI
;

;11/02/82  Shows the time to send a file.  (Routine was placed in
;	    MODEM791.LIB).  Set MSPEED to the speed you normally use.
;	    Currently set at 300 Baud.  Can reset at any time using the
;	    menu.					- Irv Hoff

;10/20/82  Made the following changes:
;
;	    1. New 'F' command shows free disk space on default drive
;		and resets drive to prevent R/O errors when attempting
;		to upload to default disk.
;	    2. Requesting DIR also shows free disk space and resets the
;		current drive. (From F. Gaude's 780).
;	    3. Heading automatically tells if set for PMMI Modem or not.
;		(Previously always indicated it was PMMI-only.)
;	    4. Grouped all TRUE/FALSE statements together.
;	    5. Put 'PMMIBYTE' immediately after ORG 0100H.
;	    6. Increased checksum timeout to original value (10 seconds)
;		to agree with CRC timeout.  This should allow adequate
;		time for slow disk systems to write.
;							- Irv Hoff

;10/16/82  Made the following changes:
;
;	    1. Added optional toggling of send linefeed after carriage
;		return,
;	    2. Added optional local command to send logon,
;	    3. Added routines to give message on execution concerning
;		the system for which the program has been configured.
;								;P.L.Kelley

;10/10/82  Rename fix log to MODEM770.HIS. Modifiers of MODEM7
;	   should update this file with fix information and change
;	   version number.					;PLK

;10/10/82  Made the following changes:
;
;	    1. Corrected bug in routine to check local command
;		to set baud rate,
;	    2. Corrected bug in NEWFILE routine,
;	    3. Reordered the configuration section to make it
;		easier to change,
;	    4. Introduced two optional toggles:
;		a. backspace to rub - on/off,
;		b. send local command to remote unless special character/
;		   use local command locally unless special character,
;	    5. Give new configuration message on toggles,
;	    6. If text file open give message on exiting terminal mode
;		about possible buffer loss,
;	    7. Give error message on reset disk to R/W attempt when file
;		open,
;	    8. Give error message if no file open when DEL, NOL or
;		WRT attempted,
;	    9. Give error message if command invalid,
;	   10. Move PMMI dialing routines so they also can be overlaid
;		by non-PMMI user routines.			;P.L.Kelley

;10/01/82  Again moved fix log to MODEM7XX.HIS			;PLK

;10/01/82  Made changes to outer shell to make program more "user
;	   friendly", as follows:
;
;	    1. Menu now has three screens of instructions,
;	    2. if NOT PMMI then PMMI instructions eliminated from Menu,
;	    3. eliminated XPR mode - replaced with M prompt from
;		Menu command line,
;	    4. Menu display routine gets user chosen values for local
;		commands,
;	    5. added Menu command to reset disks to R/W,
;	    6. added Menu command to display phone numbers for non-PMMI
;		users,
;	    7. added Menu command for non-PMMI users to employ routine
;		from user overlay to reset modem ports.
;
;	   Made following additions to user overlay options:
;
;	    1. added table of local command values,
;	    2. added option to convert backspace to rub,
;           3. added option for transmit local character unless
;		preceded by special character,
;	    4. added parameter to test for existence of user overlay
;		routine to reset modem ports from Menu.
;
;	   Made changes to main line routine checks of user overlay as
;	   follows:
;
;	    1. get local command values,
;	    2. test for convert backspace to rub option,
;	    3. not use disconnect local command if non-PMMI user,
;	    4. always check overlay for IMSAI before front panel output,
;	    5. test whether local command must be preceded by special
;		character.
;
;	   Also, wrote overlay file entitled M769CNFG.ASM which user can
;		edit to:
;
;	    1. change the modem ports,
;	    2. change options as appropriate to his system,
;	    3. change other options to suit his taste,
;	    4. include an optional routine to initalize his modem
;		on execution of MODEM7,
;	    5. include an optional routine to reset his modem from
;		the Menu.
;		    (Examples of 4 and 5 are given in the
;		       file for the case of the H89.)
;								;P.L.Kelley

;08/14/82  Changed timeout in RCVSQ to 10 seconds instead of 3 secs.
;	   to allow time for loading of large buffers before deciding
;	   to switch to checksum mode.				;RLP

;07/04/82  Changes in 'S2' area.  When in "T" mode, a CTL-Y allows copy
;          into the file, CTL-K stops copy into the file.  'MENU2:' area
;          shows these controls.  EQU tables more logically arranged at
;          beginning.  Extensive changes for more uniform appearance.
;                                                               ;IMH	

;05/29/82  Moved fix log to history file.  MODEM7xx.HIS
					           RLP

;05/29/82  Fixed SAVCCP option when set to false.  RLP

;05/21/82  Fixed minor bug at DISCON1 by changing JMP MENU1 to
;JMP MENU so that recovery is correct from a control-X interrupt
;AFTER auto dialling a number.			RLP

;05/16/82  Added RCVFIL1 label so that switch between CRC mode
;and CHECKSUM mode is done only on the first file transfer in
;batch mode. Else the program hangs up on the second file transfer
;if the sending end is not CRC capable.  Also added 'BYE' command
;to MODEM command line which disconnects (hangs up) the modem line
;and re-boots your computer.  (Good to arrange it to do a turnkey
;start of 'BYE' so ready for next call). You must have the coldboot
;prom address entered for your system at label CLDBOOT.
;Changes marked ;@FIX7.61 or ;@7.63
;					R. L. Plouffe        

;04/29/82  Changes at TERM, START1 and OPTCK marked by ; @7.61
;fix a bug that causes abort at the end of a file transfer if
;the ogiginate 'O' or the answer 'A' character was not entered
;after the 'T' term character when switching between term and
;menu. Now the ogiginate or answer character has to only be 
;entered once when comunications is first established. Also
;changed the MACLIB mico to MODEM75. Added CR,LF to the NEWBAUD
;message.
;					R.L.Berg
;
;4/12/82  Merged in changes/enhancements from versions 7.32
;and 7.4 and MODEM75.FIX.  This should hopefully give us one
;"master" version again.  B. R. Ratoff
;Summary:
; @7.32 - Delay loop at DILAGN1 to allow "smart" terminals time
;         to process bell character.
;
; @MODEM75.FIX - Maintain originate mode on RET command after
;         transferring files (at TERM:).  Restore option tables correctly
;         on control-D command (at DIR).  Issue "file open" message on
;         receive (at RCVC3).
; @7.41 - Make CRC/checksum switching on Receive automatic....
;         assumes CRC and defaults to checksum on timeout.
;
;2/20/82  Changes at TERM and START1 marked by ; @7.5 fix a
;long standing bug in MODEM7x that causes abort at the end of a
;batch file transfer or an attempt to transfer a non-existent
;file.  The call to NOPARIT in DONETCE caused a computer that was
;in answer mode (but not explicitly by command option) to switch
;to originate mode thus causing the two ends to no longer communicate
;with each other.  Also added SAVCCP byte and code to prevent
;overwriting of the CCP at the users option.       R. L. Plouffe 
;
;1/23/82  The following changes have been made in this version.
;							RLP
;Extensive cleanup of the file including colons after all labels
;for easier search with screen editor for the purposes of debug.
;Also set file capture mode so as not to overwite the CCP and
;changed EXIT to return to the CCP instead of doing warm boot.
;
;TERML routine fix:
;Added Rick Kawala's fix so that fewer framing errors will occur
;with hosts that send out characters with high bit set.
;
;CAL command fix:
;   All versions of MODEM7 including MODEM73 are supposed to be
;able to accept "CAL n" (where n is either a library letter or
;a phone-number string) as a valid form of the CAL command.  In
;fact, however, the "n" will simply be ignored.  This is because
;routine DIALPL checks for a command length >= 4 as a signal to
;skip the library display, but the menu routine, after
;recognizing CAL, sets the length to 1 so the L in CAL doesn't
;look like an illegal secondary option.
;   The following kludge repairs this defect.  In routine
;DIALPL, two lines above label DIALPL0, change CMDBUF+5 to
;CMDBUF+6.  Also, in routine GETCMD, three lines above label
;NXTOPT2, change MVI A,1 to MVI A,20H and change the next line
;from STA CMDBUF+1 to STA CMDBUF+4.  This makes the command
;look to the option processor like "CA  n", and since A is a
;legal secondary option (which in this case is never used) the
;line passes muster.  If an actual telephone number is used,
;you have to type an extra blank: CAL  000-0000, whereas
;with library numbers one blank only must be typed: CAL A.

;12/16/81 Removed stack imbalance bug at COLONB by adding
;	  a JMP BRK1. Change is marked by ;@   R. L. Plouffe

;11/21/81  Fixed code so byte received is on same line when
;	   messages "XXH RCD, NOT SOH" or "XXH RCD, NOT ACK"
;          are displayed. Also changed stack size to 50H.
;	   (P.L.Kelley)

;10/29/81 Changed receive sector routine so that on the first
;time through when CRC is being used, it only waits 3 seconds
;to receive the SOH after sending the initial 'C'.  If a
;character is not received within 3 seconds, then a NAK is
;sent and this program switches to CHECKSUM mode.  The sending
;of the NAK causes XMODEM or MODEM to start sending the file
;using checksum checking.  This allows the CRC MODEM7 program
;to be used with versions of XMODEM, MODEM, and MODEM7 that
;do not use CRC, even when MODEM7 has specified a CRC
;transmission. (John Mahr)
;
;10/18/81 Added CRC option. This is another secondary option
;that is specified by giving a 'C'.
;	MODEM RC.600 fn.ft
;	MODEM ROC.300 fn.ft etc.
;	note: cannot have more than 6 secondary options.
;When the file receive cmd. specifies CRC, the ltr. 'C' is
;sent in place of the initial NAK. This signals the sender
;(XMODEM54 or equiv.) that CRC is in effect. The sending 
;program will repalce the checksum with the CRC 2 bytes.
;CRC will give better than a 99.99% probability that there
;are no data errors. Code copied from MODEM213, thanks to
;John Mahr and Paul Hansknecht for the implementation. (WDE)

;10/11/81 Add first NAK to RCVFIL to speed up start
;Removed monitor scroll from good block messages
;CTL-^ forces send of next char in T mode (for ctl-E,ctl-D) (WDE)

;07/05/81 Added BRR ctrl char chgs, my number list (Bill Earnest)

;06/05/81 Deleted some unneeded messages in the dial routines. (Bob Clyne)

;05/31/81 Added detection of framing, overrun, and parity errors for
;	  Receive file routine. (A modified version of the routines in
;	  MODEM V2.06)

;	  Added provisions to send and receive either even or odd parity
;	  bit with PMMI modem in the 'S'end or 'R'eceive file modes - resets
;	  to no parity in other modes. Use of the parity feature will slow
;	  transfers slightly due to the extra (parity) bit being sent with
;	  each character. Also this is the only program that I KNOW OF that
;	  actually sends, or sets up the PMMI to receive, the parity bit.
;	  Both ends must be set to the same parity for it to work. Parity
;	  is invoked by adding a '0' (ASCII) for even parity or a '1' (ASCII)
;	  for odd parity to the 'S'end or 'R'eceive command string eg. R0.600.

;	  Changed timing for sending 'B'reak in the terminal mode.

;	  Changed the code so that the 'M'enu command works from the keyboard
;	  even when in XPR (expert) mode.

;	  Added display of hex in addition to decimal numbers for file length
;	  and sector numbers.

;	  Removed provision for remote cancel of file transfers in the 'S'end
;	  and 'R'eceive modes to prevent line noise from aborting a transfer.
;	  (Bob Clyne)


;02/15/81 Patched in the ringback routines from DIAL6/23. It doesn't
;	  seem to be able to recognize when the other phone is ringing
;	  though so it is a little shakey.

;	  Put in routines to calculate file sizes and sector numbers in
;	  decimal.

;	  Put in code to transmit a "BREAK" with a PMMI for use with
;	  computers which use BREAK instead of Control S to suspend
;	  output. Control P is now the baudrate change request key
;	  and Control @ is the BREAK key.. (Bob Clyne)


;12/18/80 Changed disconnect timing.

;10/26/80  Minor revision to allow 25-second 'wait' after PMMI
;	   autodial -- longer time required for Chicago CBBS*.  Jim Mills.
;	   * CBBS is a trademark of Ward Christensen and Randy Suess.
